Method and system for creating musical scores from musical recordings

ABSTRACT

A method and a system for obtaining a musical score from a musical recording is disclosed. The present invention further provides a method and system for creating an editable music file from a musical recording, such that a user may modify the musical recording and obtain a musical score from the modified musical recording. The method comprises operations of: (1) storing a musical recording as a wave file; (2) generating a pseudo wave file for each segment of interest from the wave file; (3) generating a sequence file for each of the pseudo wave files; (4) generating a list of events from the sequence files; (5) converting the list of events from the sequence file into a MIDI or other notation readable program file; and (6) importing the MIDI or other file into the notation program in order to print the musical score.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority from U.S. Provisional application No.60/149,790, filed Aug. 19, 1999.

FIELD OF THE INVENTION

The present invention relates generally to methods and systems forobtaining a musical score from a musical recording and, moreparticularly, to a method and system for creating computer files from adigital musical recording.

BACKGROUND OF THE INVENTION

Musical Instrument Digital Interface, MIDI, is a digital communicationprotocol, which allows interworking between musical instruments byproviding a link which is capable of transmitting and receiving digitaldata or instructions for creating music. The MIDI specification includesa common language that provides information about events, such asturning on and off notes, expresses the velocity of each note, andprovides the timing relationships of all MIDI notes and events. Astandard MIDI file is used to transfer MIDI information from a musicalinstrument to another device. Generally, a MIDI sequencer file istransferred to a standard MIDI file which, in turn, gets interpreted bya notation program.

MIDI sequences typically allow the user to input data in two ways: (1)real time recording, where incoming data is recorded as the performerplays on an instrument having a MIDI controller; and (2) step timerecording, which allows the performer to input notes of events one stepat a time from the controller, or using a computer keyboard or mouse. Anotation program allows the user to create a full score of a compositionand to extract individual parts with transposition for individualinstruments. However, in order for the user to print out a musical scoreof a composition, the performer must input the musical notes using amusical instrument which includes the MIDI controller or the MIDI port.

Accordingly, a process which enables the user to obtain a musical scoreof a composition without requiring a musical instrument with the MIDIcontroller is desirable. Such a process preferably would generate astandard MIDI file from a digital recording and would not require amusical instrument having the MIDI controller.

SUMMARY OF THE INVENTION

In one embodiment, the present invention provides a method and systemfor obtaining a musical score from a musical recording. In anotherembodiment, the present invention also provides a method and system forcreating an editable music file from a musical recording, such that auser may modify the musical recording and obtain a musical score fromthe modified musical recording. An exemplary method comprises any two ormore of the steps: (1) storing a digital musical recording as a wavefile; (2) generating a pseudo wave file for each octave segment ofinterest from the wave file; (3) generating a half-tone or othersequence file for each of the pseudo wave files; (4) generating a listof events from the sequence file; (5) converting the list of events fromthe sequence file into a MIDI file or other notation program readablefile that can be imported into a notation program; and, (6) importingthe MIDI or other file into the notation program in order to print themusical score.

The computer files which may be configured as a standard MIDI file, maybe read by a notation program or a MIDI sequencer program to allow auser to create a full score of a composition or to extract theindividual parts. The user is no longer required to use a musicalinstrument with a MIDI port, or the like, to obtain a musical score of acomposition.

In an exemplary embodiment, the list of events generated from thesequence file is configured as a standard MIDI file with a song header,a track header, and a series of note events, by sorting the events bytime, rather than by tone, and observing MIDI conventions. The standardMIDI file may be read by another notation program or a MIDI sequencerprogram. According to other exemplary embodiments, any of variousconventional notation program readable files other than MIDI may beused.

In another exemplary embodiment, the list of events may be used as aneditable file where a user can edit or modify the musical recording fromits original form prior to converting the an event list to a notationprogram readable file such as MIDI. After the modification, the file isconfigured as a standard MIDI or other notation program readable file asdescribed above. The standard MIDI file may be read by another notationprogram or a MIDI sequencer program. A user may use this exemplaryembodiment to create a full score of a composition or to simply extractindividual parts of a musical piece.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flowchart showing the sequence of creating a musical scorefrom musical recording according to an exemplary embodiment of thepresent invention;

FIG. 2 is a table of pitch characteristics of sixty-one notes of akeyboard of an organ manual;

FIG. 3 is a Quick BASIC (Beginners All Purpose Symbolic InstructionCode—Microsoft version) code used to generate the table in FIG. 2;

FIG. 4 is a table listing an octave normalized with respect to the topoctave of FIG. 2;

FIG. 5 is a graph of relative pitch showing the curve generated from thetable in FIG. 4;

FIG. 6 is a straight line approximation of the curve of FIG. 5;

FIG. 7 is a table which lists data comparing the straight line of FIG. 6with the curve of FIG. 5;

FIG. 8 is a graph showing a two-segment approximation of the curve shownin FIG. 5;

FIG. 9 is a table which lists data comparing the two-segmentapproximation of FIG. 8 with the curve of FIG. 5;

FIG. 10 is a graph showing a three-segment approximation of the curve inFIG. 5;

FIG. 11 is a table which lists data comparing the three-segmentapproximation of FIG. 10 with the curve of FIG. 5;

FIG. 12 is a graphical presentation of filter characteristics, or therelative transform response, of a single transformed pitch at 17 cyclesper frame;

FIG. 13 is a table listing pitches which vary from three half-tonesbelow and above 17 cycles per frame;

FIG. 14 shows an exemplary computer code used to generate the table inFIG. 13;

FIG. 15 is a table listing the filter characteristics of the singletransformed pitch at 17 cycles per frame;

FIG. 16 lists calculations for determining sample rates for three cases;

FIG. 17 shows a list of functions used to generate the tables shown inFIGS. 18, 19, and 20;

FIG. 18 is a table listing pitch characteristics of a 4 half-tones persegment embodiment;

FIG. 19 is a table listing pitch characteristics of a 6 half-tones persegment embodiment;

FIG. 20 is a table listing pitch characteristics of an 8 half-tones persegment embodiment;

FIGS. 21A, 21B, and 21C are each graphic representations showing plotsof interpolation polynomials;

FIGS. 22A, 22B, and 22C each provide a list of polynomial equations usedto generate the set of curves shown in FIGS. 21A, 21B, and 21C,respectively;

FIG. 23 is a table of interpolation coefficients;

FIG. 24 is a table showing normalized interpolation coefficients;

FIG. 25 is a graphical representation of 17 ordinate values obtained byinterpolating among 24 samples;

FIG. 26 is a table which lists frame rates for various conditions;

F1G. 27 is a table listing response pitches of the notes;

FIG. 28 is a table listing the discrepancies of the response pitches incents;

FIG. 29 is a flow chart showing the generation of pseudo wave files;

FIG. 30 is a flow chart following FIG. 29, and which shows thegeneration of sequence files from pseudo wave files;

FIG. 31 is a flow chart following FIG. 30, and which shows thegeneration of a MIDI file from the sequence files;

FIG. 32 is a table of pseudo wave files; and

FIG. 33 is a table of half-tone files.

DETAILED DESCRIPTION OF THE INVENTION

The present invention provides a system and method for creating amusical score from a musical recording. The present invention alsoprovides a method and system for creating an editable music file from amusical recording, such that a user may modify the musical recording andobtain a musical score from the modified musical recording.

As will be understood by one having skill in the art, Musical InstrumentDigital Interface, MIDI, is a digital communication protocol whichallows interworking between musical instruments by providing a link thatis capable of transmitting and receiving digital data or instructionsfor creating music. The MIDI specification includes a common languagethat provides information about events, such as turning on and offnotes, it expresses the velocity of each note, and it describes thetiming relationships of all MIDI notes and events. A standard MIDI fileis used to transfer MIDI information from one type of device to another.Generally, a MIDI sequencer file is transferred to a standard MIDI file,which then gets interpreted by a notation program.

MIDI sequences allow the user to input data in two ways:

(1) real time recording, where incoming data is recorded as theperformer plays on an instrument having a MIDI controller; and

(2) step time recording, which allows the performer to input notes ofevents one step at a time from the controller or a computer keyboard ormouse. A notation program allows the user to create and print out a fullscore of a composition and also allows the user to extract theindividual parts with transposition for individual instruments.Therefore, according to the conventional art, in order for the user toprint out a musical score of a composition, the performer must input themusical notes by using a musical instrument with the MIDI controller orby inputting the notes one step at a time.

The musical spectrum is divided into octaves. Each octave consists of aseries of 12 half-tones. The 13^(th) is the first half-tone of the nextoctave. Each octave is divided into segments. In the present invention,a digital recording or wave file is used to produce pseudo wave files. Apseudo wave file is produced for each octave segment of interest, aswill be described below. A sample is a number indicating theinstantaneous amplitude of a sound wave and is a signal integer. Currentconventions include 1, 2, and 3-byte numbers. The sample rate of eachpseudo wave file is proportional to the pitch of its segment.Conventional sample rates are 11025, 22050 and 44100 samples/second. Apseudo wave file is produced by interpolating among the actual samplesof the wave file or the partially generated pseudo wave file.

Now turning to the figures, FIG. 1 provides a block diagram showing thesequence of the method for obtaining a musical score and an editablecomputer file from a musical recording, without requiring the use of amusical instrument having a MIDI port or controller. FIG. 1 is a flowchart which shows a digital recording of music stored as a wave file instep 102. The wave file includes a header and samples, where samples arerelated to regular intervals of time. The header is the initial data inthe wave file. Current convention uses eleven groups of four bytes ofalpha-numeric characters or 32-bit numbers in the header.

In ascending order, each half-tone of an octave has a pitch related tothe pitch of its predecessor of 2 raised to the {fraction (1/12)}thpower. Each octave may be divided into segments, which are known asoctave segments. According to various exemplary embodiments, an octavemay include four segments with three half-tones per segment; threesegments with four half-tones per segment; two segments with sixhalf-tones per segment; or one segment with twelve half-tones persegment. In the present invention, an octave number is defined as theinteger part of the MIDI pitch number, divided by 12. Statedalternatively, the octave number as defined, is one greater than theconventional octave number designation. According to other exemplaryembodiments in which a notation program readable language other thanMIDI is used, the octave number may be defined differently.

By sampling one octave segment of the wave file in step 102, a pseudowave file is generated at step 104 for the corresponding octave segmentof interest. A sample is a signed integer indicating the instantaneousamplitude of the musical wave. Current conventions include 1, 2, and3-byte numbers.

Pseudo wave files shown at step 104 are generated for each portion ofthe wave file. In an exemplary embodiment a portion may be an octavesegment of interest. In one embodiment, five octaves are selected witheach octave having three octave segments of four half-tone segmentseach. As such there are fifteen octave segments of interest and fifteenpseudo wave files are created in this embodiment. A pseudo wave file hasa file or an array similar to the wave file. However, a pseudo wave filediffers from a wave file as it may lack a standard header, and it maynot have a standard sample rate. Also, the pseudo wave file may not havestandard sample resolution.

The sample rate of the pseudo wave file is proportional to the pitch ofits octave segment. Conventional sampling rates for musical recordingsinclude 11025, 22050 and 44100 samples per second but other rates may beused alternatively. As such, the sample rate for the pseudo wave filemay be 11025, 22050 or 44100 samples per second according toconventional exemplary embodiments. The length of each pseudo wave filein step 104 is measured in analysis frames, or simply, frames, whereeach frame consists of approximately seventy five to two hundredsamples. In an exemplary embodiment, 128 samples per frame may be used.The samples in each pseudo wave file are approximated by interpolatingamong samples of the existing wave file in step 102, or among samplesfrom existing pseudo wave files in step 104.

A pseudo wave file representing an octave segment generates a series ofpitch coefficients which represent each frame and each half-tone in thesegment. These coefficients from the pseudo wave files create sequencefiles in step 106 according to the method described below. A sequencefile is a file or array of pitch coefficients. In one embodiment, thesequence file is created by transforming the pseudo wave file, which isin the time domain, to a file in the pitch domain utilizing the Fourierresponse of a sinusoid. In the preferred embodiment, the sequence fileis a half-tone file.

A list of events is then generated from the data in each of the sequence(half-tone) files in step 108. An event is the beginning or ending of amusical note. Event data includes (1) identity of half-tone, (2) attackor release velocity, (3) relative time of occurrence, and (4) whetherthe event is an attack or release event. A series of events are listedby the octave segment of interest. The list of events may be modified bythe user such as shown at step 109. According to another exemplaryembodiment, step 109 may be bypassed (as shown by the dashed line) andthe event list not modified.

According to an exemplary embodiment, the original or modified list ofevents creates a standard MIDI file with a song header, a track header,and a series of note events by sorting the events by time, rather thanby tone, and observing MIDI conventions such as shown at step 110. Thelist of events may alternatively create another notation programreadable file, not in MIDI format. Any of various conventional notationprogram readable files may be used. The standard MIDI file from step 110is imported into a notation program where it can be read by a notationprogram or a MIDI sequencer program. Some programs allow a user tocreate and extract a full score of a composition, as well as extractingthe individual parts. The musical score may then be printed from thenotation program file.

A normalized pitch response used in generating the sequence or half-tonefile from the pseudo wave file as in step 106 may be approximated bystraight lines. A Fourier response to a sinusoid may be used toapproximate the pitch response according to an exemplary embodiment aswill be described below. In FIG. 2, sixty-one notes of a keyboard of anorgan manual (8 ft registration) are listed along with the generatedpitch response. Column heading MN represents MIDI pitch number; columnheading K represents musical note designation; column heading Orepresents octave number; and column heading P represents pitch inHertz. A pitch number is assigned to each half-tone. The pitch of ahalf-tone is 1.0595 times the pitch of a half-tone: immediately belowit. The interval between consecutive pitch numbers can be divided into100 parts, where the parts are called cents or pennies. Cents are anoffset or a discrepancy percent of a half-tone interval. The pitch isfor an equally tempered scale based on A5 440 (Hz).

FIG. 3 is a Quick BASIC (Beginners All Purpose Symbolic InstructionCode; a Microsoft version) code used to generate the table in FIG. 2.Other codes may be alternatively used to generate the table shown inFIG. 2. Variables in the Quick BASIC code are: i, representing indexnumber; j, representing index number; M, representing MIDI pitch number;O, representing Octave number; and N, representing Note number. Stillreferring to FIGS. 2 and 3, note designators are numbered from 0 to 12,where N(C)=0; N(C#)=1; N(D)=2; N(D#)=3; . . . ; N(B)=11; N(Top C)=12.Pitch number M is based on the indices i and j. Octave number, O, is theinteger part of M/12. N is the remainder of M/12-O. C0 is the bottomnote of the zeroth octave, where CO=440*2{circumflex over ()}(−69/12)=8.1758 cycles per second (Hz).

FIG. 4 is a table listing an octave normalized with respect to the topoctave (84-96) of FIG. 2. As above, the sequence or half tone file isgenerated using a normalized pitch response. FIG. 5 is the curvegenerated from the far right column of the table of FIG. 4 and showspitch along a single octave of notes. In FIG. 5, the y-axis representsthe normalized pitch frequency from one to two; the x-axis representsnotes of an octave from C to the next C.

A musical recording is a function of time. A digital musical recordingin a sample domain can be transformed to a pitch domain by using thefollowing relationship: P=I*R/N, where P is the recovered pitch; I is aninteger representing the number of cycles per frame; R is the samplingrate (samples per second); and N is the number of samples per frame. Thetransformation uses linear increments of pitch by approximating thecurve of FIG. 5 with one or more line segments.

FIG. 6 is a single straight line approximation of the octave curve ofFIG. 5, and FIG. 7 is a table which lists data comparing the straightline of FIG. 6 with the curve of FIG. 5. Column heading Coef representsthe slope of the straight line and I represents linear increments ofpitch. Column heading Fi is the pitch based on consecutive integers, andFr is the normalized pitch from FIG. 4. The discrepancy percentage,cents (Cts), is estimated as Cents=1200*(Fi−Fr).

FIG. 8 is a two-segment approximation of the octave curve shown in FIG.5. FIG. 9 is a table which lists data comparing the two-segmentapproximation of FIG. 8 with the curve of FIG. 5. Once again, the columnheading Fi is the pitch based on consecutive integers and Fr is thenormalized pitch of FIG. 5. The discrepancy percentage, cents (Cts), isestimated using the same formula as for the straight one-lineapproximation.

FIG. 10 is a three-segment approximation of the curve in FIG. 5. FIG. 11is a table listing data comparing the three-segment approximation ofFIG. 10 with the curve of FIG. 5. Again the discrepancy percentagebetween Fi and Fr is represented by cents (Cts) as calculated above.FIGS. 7, 9, and 11 each show discrepancies between equally temperednotes and notes which are approximated by integers.

In the preferred embodiment, a Fourier response of a sinusoid is used totransform from time domain to pitch domain in generating the half-tone(sequence) file from the pseudo wave file (step 106 as in FIG. 1). Thistransformation uses linear increments of pitch to approximate the curveshown in FIG. 5 with one or more line segments as shown above.Accordingly, the transformation has the following relationship: P=I*R/N;where P is a pitch frequency in Hertz, R is the sample rate, N is thenumber of samples in a frame, I is one of a series of consecutiveintegers. FIG. 12 graphically shows filter characteristics, or therelative transform response of a single transformed pitch at an incidentpitch frequency of 17 cycles per frame. Note that the notches arearithmetically spaced around and notes are geometrically spaced.

FIG. 13 is a table of transform response pitches based on incidentpitches which vary from three half-tones below and above the 17 cyclesper frame. The column headings of FIG. 13 are: Fi, incident pitch; Real,in-phase response pitch; Imag, Quadrature response; Abs, an Absoluteresponse; and Si, defined as 64* (sin (pi*x)/x), where x=Fi—Fa. ColumnsAbs and Si show that the filter characteristics are proportional to theabsolute value of (sin (pi*x)/x). It can be seen that the columns differslightly from each other due to quantizing errors. FIG. 14 is anexemplary computer code used to generate the table in FIG. 13. FIG. 15is a table listing the filter characteristics of the single transformedpitch at 17 cycles per frame such as shown graphically in FIG. 12. Theamplitude of the curve shown in FIG. 12 and as tabulated in FIG. 15, isthe normalized response to the incident pitch at the indicated pitchfrequency according to the calculation scheme shown in FIG. 14.

The following is an exemplary calculation of sampling rates for theoctave segments of interest when converting from the wave file to thepseudo wave files as in step 104 of FIG. 1. FIG. 16 lists calculationsfor determining sample rates for three cases: (a) 4 half-tones persegment; (b) 6 half-tones per segment; and (c) 8 half-tones per segment.In one exemplary embodiment, 11025 Hz is the sample rate of the digitalmusical recording. The sample rate is proportional to the pitch of itsoctave segment. The variables included in FIG. 16 are: Kr1—ratio ofhighest sample rate of the octave segment of interest to the recordingsample rate; Kr2—lower sample rate ratio, which can be approximated as2{circumflex over ( )}(M/12), where M=Number of half-tones per segment;and, SR(X)—sample rate at the Xth segment.

In all three cases, when calculating Kr1 and KR2, both the denominatorand numerator will desirably be below 100 samples per second, so that atthe end of files used as inputs, there will not be any samples leftover. Kr1 and Kr2 are derived from the approximation 2{circumflex over ()}(M/12), where M=Number of half-tones per segment. In case of (a) 4half-tones per segment, Sr(0) is the sample rate of the recording, Sr(1)is the highest sample rate representing the highest pitch segment, Sr(2)is the sample rate of a segment that is ⅓ of an octave down from Sr(1)segments and Sr(4) is one full octave down from Sr(1) segment. Theprocess repeats for the remaining Sr(X)'s. In case of (b) 6 half-tonesper segment, Sr(0) is the sample rate of the recording, Sr(1) is thehighest sample rate representing the highest pitch segment, Sr(2) is thesample rate of a segment that: is ½ of an octave down from the Sr(1)segment, and Sr(3) is one full octave down from Sr(1) segment. Again theprocess repeats for the remaining Sr(X)'s. Lastly, in the case of (c) 8half-tones per segment, Sr(2) is the sample rate of a segment that is ⅔of an octave down from Sr(1) segment.

Conventional musical standards include an ideal pitch to which a musicalinstrument may be tuned. A MIDI program or controller provides analgorithm which provides a generated pitch. The pitch generated by theMIDI algorithm detects the presence of activity (tone) at the particularhalf-tone. The difference between the ideal or musical standard pitchand the MIDI algorithm generated pitch can be expressed in cents. FIG.17 is an algorithm or list of functions which are used to generatetables in FIGS. 18, 19, and 20, which include ideal pitch, generatedpitch and the difference therebetween. FIG. 18 is a table listingcharacteristics of the 4 half-tones per segment case. FIG. 19 is a tablelisting characteristics of the 6 half-tones per segment case. FIG. 20 isa table listing characteristics of the 8 half-tones per segment case.The column headings for the tables shown in FIGS. 18-20 are: Sr, samplerate (samples per second); Cf, cycles per frame with 128 samples perframe; Pn, a pitch number; K, a music key such as C, C#, D, D#, E, F,etc.; O, octave; Pe, nominal pitch (equally tempered) in cycles persecond; Pa, response center pitch; and, Cents representing thedifference between the ideal pitch Pa, and the generated pitch Pe.

An interpolation process is preferably used to generate pseudo wavefiles from the wave files according to the following. Interpolationcoefficients are utilized to approximate samples on the top octave'soctave segments in order to produce a continuous pseudo wave file. FIGS.21A, 21B and 21C are graphic representations of three sets ofinterpolation polynomials. The set of curves shown in FIG. 21A is fortwo-point interpolation. The set of curves shown in FIG. 21B is forthree-point interpolation. The set of curves shown in FIG. 21C is forfour-point interpolation. Interpolation coefficients are used toapproximate each of the samples in an octave segment in order togenerate a pseudo wave as in step 104 of FIG. 1. The polynomial curvesin FIGS. 21A, 21B and 21C apply to interpolating among equally spacedtwo, three, and four ordinates, respectively. FIGS. 22A, 22B and 22Ceach include a list of equations used to generate the corresponding setsof curves in FIGS. 21A-21C. The polynomial equations in FIGS. 22A-22Care used to determine interpolation coefficients among two, three, andfour points, respectively. The set of equations in FIG. 22A is used toproduce the graph in FIG. 21A and is used to determine interpolationcoefficients among two points. Similarly, the set of equations in FIG.22B is used to produce the graph shown in FIG. 22C and is used todetermine interpolation coefficients among three points. The samerelationship is true for FIGS. 22C and 21C, for four pointinterpolation.

FIG. 23 is a table of interpolation coefficients which may be used tointerpolate ordinate values using various interpolation functions. Thetable is used to obtain blocks of 29 equally spaced samples from blocksof 41 equally spaced samples. The source file is a stream of samples.The source stream is divided into blocks. Each block contains 44samples. These samples are numbered in the j column of FIG. 23 from −1to 39 where the remaining samples in the block are implicit as j+1, j+2and j+3 when j=39. These latter 3 samples are renumbered as −1, 0, 1when the next block of 41 new samples is taken from the input stream arenumbered from 2 to 42. The X values represent the X-axis of the fourpoint interpolation plot shown in FIG. 21C, in the 1.0 to 2.0 range.Each of the derived or interpolated samples which are numbered in columni from 0 to 28, are derived as follows:S(i)=K(A)*S(j)+K(B)*S(j+1)+K(C)*S(j+2)+K(D)*S(j+3). In order to savemachine time and/or memory space, integer arithmetic may alternativelybe implemented to produce normalized interpolation coefficients such asshown by the table of FIG. 24.

FIG. 25 illustrates 17 ordinate samples (lower plot) derived from 24samples (upper plot) using an interpolation procedure, such as which mayuse the interpolation coefficients provided in FIG. 23 or FIG. 24. Sucha procedure is used to complete the generation of the pseudo wave file.It can be seen that smooth curves passing through ordinate ends in eachcase would be very nearly the same curve.

FIGS. 26, 27 and 28 represent an exemplary calculation embodiment inwhich response pitches are calculated for 61 notes listed in FIG. 2 andwhich are divided into 15 segments having 4 half-tones per segment inthe three segment per octave case. The original sample rate of therecording is 11025 samples per second. 106 samples per frame is used inall cases. Sample rates are reduced according to K(i,j)=(½){circumflexover ( )}i*(50/63){circumflex over ( )}j where i and j are integers.Integer i represents the number of octaves below the top octave andinteger j represents number of segments below the top segment. The framerate equal the sample rate divided by the number of samples per frame.Accordingly, frame rates in frames per second are calculated fromK(i,j). FIG. 26 is a table which lists the frame rates in frames/secondas integers i and j are varied. FIG. 27 is a table listing responsepitches of the notes for various frame rates. Column headings are: Cf,cycles/frame; Fs, K(i,j) in frames/second; and Pitch frequency, (Cf*Fs).FIG. 28 is a table listing the discrepancies between the ideal pitch andthe generated response pitch of FIG. 27, in cents.

FIGS. 29-31 combine to form a single flow chart which shows thestep-by-step process of an exemplary embodiment of the method of thepresent invention. The various operations shown may be carried out usinga conventional general purpose computer and appropriate software such asavailable in the art. The conventional computer may also includeconventional peripheral devices such as a keyboard, monitor, printer,mouse, audio adapter and speakers. For example, the computer may providethe means for generating the pseudo wave file, generating the sequencefile, generating the event list, and converting the event list into aMIDI or other notation program readable file. Any of several suitableprogramming languages may be used to program the computer to carry outthe indicated operations as shown.

Referring now to FIG. 29, it can be seen that the first step is memoryallocation. The digital musical recording is stored as a wave file inthis memory section. Memory space is also reserved for 5 constants,three tables and a short section of a sample stream. Generated tablesinclude interpolation tables and a trigonometric table according to anexemplary embodiment.

According to an exemplary embodiment, the first table may be used togenerate pseudo wave file 7.5. Pseudo wave files are numbered from 2.0to 7.5 in increments of 0.5. File number 2.0 is used in the generationof the lower six half-tone files of octave 2. The generation ofhalf-tone or sequence files will be shown in FIG. 30. Pseudo wave file2.5 is used in the generation of the six half-tone files for the upperhalf of octave 2. Pseudo wave file 7.5 is used to generate the half-tonefiles of the upper half of octave 7. Pseudo wave file 7.5 is used in thegeneration of other files:

a. it is used in the generation of pseudo wave file 7.0;

b. it is used in the generation of pseudo wave file 6.5;

c. it is used in the generation of 7 half-tone files of the uppersegment of octave 7; and

d. it is used in tempo resolution.

Ad All other pseudo wave files are generated by dividing the repetitionrate by two. Six half-tone files are generated from each of theremaining 11 pseudo wave files. FIG. 32 shows a list of 12 exemplarypseudo wave files so created.

FIG. 30 is a flow chart showing an exemplary series of operations forgenerating a sequence file from the pseudo wave file. The flow chartshown in FIG. 30 follows sequentially from the flow chart shown in FIG.29. The sequence files so generated may more appropriately be referredto as half-tone sequence files or simply half-tone files.

FIG. 33 is a list of the same 12 pseudo wave files shown in FIG. 32,together with the half-tone (sequence) files that these pseudo wavefiles are used to generate. Half-tone files are numbered from 24 to 96using MIDI pitch numbers.

FIG. 31 is a flow chart following sequentially from the flow chart shownin FIG. 30. FIG. 31 is an exemplary embodiment of the method of thepresent invention showing an event list generated from the sequencefile. Again, the reader is reminded that a sequence file is moreappropriately referred to as a half-tone file. FIG. 31 shows the eventlist derived from each of the half-tone (sequence) files. These eventsinclude start time and stop time of a half-tone with time skew removed.The events include strike and release velocities. The events are taggedwith their pitch numbers and sorted by time of occurrence. According toan alternative embodiment not shown in FIG. 31, the event list may bemodified by a user after it is generated.

From the generated or modified event list, a notation program readablefile such as the MIDI file shown in the exemplary embodiment shown inFIG. 31, is generated. It should be understood that other notationprogram readable files may be generated alternatively. After the MIDI orother notation program readable file is generated, it is then importedinto a notation program. The musical score may then be printed from thenotation program (not shown in FIG. 31).

The preceding description merely illustrates the principles of theinvention. It will be thus appreciated that those skilled in the artwill be able to devise various arrangements which, although notexplicitly described or shown herein, embody the principles of theinvention and are included within its spirit and scope. Furthermore, allexamples and conditional language recited herein are principallyintended expressly to be only for pedagogical purposed to aid the readerin understanding the principles of the invention and the conceptscontributed by the inventor to furthering the art, and are to beconstrued as being without limitation to such specifically recitedexamples and conditions. Moreover, all statements herein recitingprinciples, aspects, and embodiments of the invention as well asspecific examples thereof, are intended to encompass functionalequivalents thereof. Additionally, it is intended that such equivalentsinclude both currently known equivalents as well as equivalentsdeveloped in the future, i.e. any elements developed that perform thesame function regardless of structure.

As such, the invention is not intended to be limited to the detail andexamples shown. Rather, various modifications and additions may be madein the details within the scope and range of equivalents of the claimsand without departing from the invention. For example, the presentinvention may include programming in any suitable computer languagewithout departing from the scope of the invention.

The scope of the present invention is best understood by the appendedclaims.

What is claimed is:
 1. A method for obtaining a musical score from amusical recording, comprising the steps of: storing a digital musicalrecording as a wave file; generating a pseudo wave file for each octavesegment of interest of the wave file; generating a sequence file foreach of the pseudo wave files; generating an event list from thesequence files; and converting the event list into a notation programreadable file.
 2. The method of claim 1, further comprising the step ofimporting the notation program readable file into a notation program. 3.The method of claim 2, further comprising the step of printing themusical score.
 4. The method of claim 1, further comprising the step ofediting the event list prior to the step of converting the event listinto a notation program readable file.
 5. The method of claim 1, whereinthe step of generating a sequence file comprises generating the sequencefile using a, Fourier response of a sinusoid.
 6. The method of claim 1,wherein the notation program readable file comprises a MIDI file.
 7. Themethod of claim 1, wherein the sequence file comprises a half-tone file.8. The method of claim 1, wherein the musical recording includes asample rate of one of 11025 samples/second, 22050 samples/second and44100 samples/second.
 9. The method of claim 1, wherein each octavesegment includes one of four and six half-tones.
 10. The method of claim1, wherein there are 15 octave segments of interest including 5 selectedoctaves, each selected octave having three octave segments.
 11. Themethod of claim 1, wherein a length of the pseudo wave is measured inframes and each frame includes 128 samples per frame.
 12. The method ofclaim 1, wherein the step of generating a pseudo wave includesinterpolating to approximate samples in the wave file.
 13. The method ofclaim 12, wherein the interpolating is carried out between one of two,three and four points.
 14. A system for obtaining a musical score from amusical recording, comprising: means for storing a digital musicalrecording as a wave file; means for generating a pseudo wave file foreach portion of the wave file; means for generating a sequence file foreach of the pseudo wave files; means for generating an event list fromthe sequence files; and means for converting the event list into anotation program readable file, said means for generating a pseudo wavefile including means for interpolating to approximate samples in thewave file.
 15. The system of claim 14, further comprising means forimporting the notation program readable file into a notation program.16. The system of claim 15, further comprising means to print themusical score from the notation program.
 17. The system of claim 14,further comprising means for editing the event list.
 18. The system ofclaim 14, wherein the notation program readable file is a MIDI file. 19.The system of claim 14, further comprising a computer which includeseach of the means for generating a pseudo wave file, the means forgenerating a sequence file, the means for generating an event list, andthe means for converting the event list.